#ifndef _OCPP_VolumeEncoder_H__
#define _OCPP_VolumeEncoder_H__

#include "VolumeDef.h"
#include "OCMain/StringUtil.h"

namespace OCPP
{
	namespace Volume
	{
		class _volumeExport VolumeEncoder
		{
		public:
			using EncodeRange = std::tuple<float, float>;

			static EncodeRange EncodeRangeNone;
			static EncodeRange EncodeRangeDBZ;
			static EncodeRange EncodeRangeWind;
			static EncodeRange EncodeRangeVerticalWind;
			static EncodeRange EncodeRangeTemperature;
			static EncodeRange EncodeRangePercent;
			static EncodeRange EncodeRangeSH;

			static String EncodeRangeToString(EncodeRange _encodeRange);
			static EncodeRange EncodeRangeFromString(String str);

			static Uint8Vector encodeUV(float valueU, float valueV);
			static uint8 encodeInRange(float value, EncodeRange encRange);
		};
	}
}


#endif // !_OCPP_NcOptions_H__
